package com.cnswhy.cloud.server.core.dto;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.cnswhy.cloud.common.core.base.entity.Entity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 商户基本信息
 * </p>
 *
 * @author cnswhy
 * @since 2021-03-17
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "MerchantSaveDTO", description = "商户基本信息")
public class MerchantSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号")
    private Long customerId;
    /**
     * 商家名称
     */
    @ApiModelProperty(value = "商家名称",required = true)
    @Length(max = 100, message = "商家名称长度不能超过100")
    @NotNull
    private String merchantName;
    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人",required = true)
    @Length(max = 100, message = "联系人长度不能超过100")
    @NotNull
    private String contacts;
    /**
     * 联系人手机号
     */
    @ApiModelProperty(value = "联系人手机号",required = true)
    @Length(max = 11, message = "联系人手机号长度不能超过11")
    @NotNull
    private String contactsTel;
    /**
     * 客服电话
     */
    @ApiModelProperty(value = "客服电话")
    @Length(max = 20, message = "客服电话长度不能超过20")
    private String customerServicePhone;
    /**
     * 有效期开始时间
     */
    @ApiModelProperty(value = "有效期开始时间")
    private LocalDate expiryStartDate;
    /**
     * 有效期结束时间
     */
    @ApiModelProperty(value = "有效期结束时间")
    private LocalDate expiryEndDate;
    /**
     * 商家状态1正常2待审核3审核不通过4禁用5删除6草稿
     */
    @ApiModelProperty(value = "商家状态1正常2待审核3审核不通过4禁用5删除6草稿")
    @NotNull(message = "商家状态1正常2待审核3审核不通过4禁用5删除6草稿不能为空")
    private Integer status;
    /**
     * 意向合作描述
     */
    @ApiModelProperty(value = "意向合作描述")
    @Length(max = 1000, message = "意向合作描述长度不能超过1000")
    private String cooperationDesc;
    /**
     * 创建日期
     */
    @ApiModelProperty(value = "创建日期")
    private LocalDateTime createDate;
    /**
     * 审核日期
     */
    @ApiModelProperty(value = "审核日期")
    private LocalDateTime auditDate;
    /**
     * 推荐人手机号码
     */
    @ApiModelProperty(value = "推荐人手机号码")
    @Length(max = 11, message = "推荐人手机号码长度不能超过11")
    private String recommender;
    /**
     * 营业执照
     */
    @ApiModelProperty(value = "营业执照",required = true)
    @Length(max = 255, message = "营业执照长度不能超过255")
    private String licenseUrl;
    /**
     * 经营许可证
     */
    @ApiModelProperty(value = "经营许可证")
    @Length(max = 255, message = "经营许可证长度不能超过255")
    private String managementLicense;
    @ApiModelProperty(value = "")
    @Length(max = 255, message = "长度不能超过255")
    private String address;
    /**
     * 分成比例
     */
    @ApiModelProperty(value = "分成比例")
    private Long splitRate;
    /**
     * 公共商家
     */
    @ApiModelProperty(value = "公共商家")
    private Integer isPublic;
    /**
     * 商家类型
     */
    @ApiModelProperty(value = "商家类型",required = true)
    @Length(max = 255, message = "商家类型长度不能超过255")
    private String merchType;
    /**
     * 身份证正面
     */
    @ApiModelProperty(value = "身份证正面",required = true)
    @Length(max = 255, message = "身份证正面长度不能超过255")
    private String idcardFrontUrl;
    /**
     * 身份证反面
     */
    @ApiModelProperty(value = "身份证反面",required = true)
    @Length(max = 255, message = "身份证反面长度不能超过255")
    private String idcardBackUrl;
    /**
     * 银行卡正面
     */
    @ApiModelProperty(value = "银行卡正面",required = true)
    @Length(max = 255, message = "银行卡正面长度不能超过255")
    private String bankCardUrl;
    /**
     * 添加类型
     */
    @ApiModelProperty(value = "添加类型")
    @Length(max = 255, message = "添加类型长度不能超过255")
    private Integer addType;

}
